#ifndef SSICLOUD_VS_FEEDBACK_H
#define SSICLOUD_VS_FEEDBACK_H

#include "ssicloud_item_object.h"

namespace ssicloud {
/**
 * @brief The VSFeedback class
 *  意见反馈, 会上传文件 音频 或者 文字，或者升级包
 * @note
 */
class VSFeedback : public ItemObject<EmptyInfoNode>
{
public:
    class ReadFile : public NetUrl::ReadIFace {
    public:
        bool openFile(SFString &fn);
        ~ReadFile();
        unsigned int getSize();
        int read(char *data, int size);
        const char *getBaseName();

    private:
        int      fd;
        int      cur, total;
        SFString filename;
    };
    class ContentFile : public NetUrl::ReadIFace {
    public:
        bool openContent(SFString &ct);
        ~ContentFile() {}
        unsigned int getSize();
        int read(char *data, int size);
        const char *getBaseName();

    private:
        int      fd;
        int      cur, total;
        SFString content;
    };


    VSFeedback();
    ~VSFeedback();

    //! 获取数据
    bool postEventInfo(FeedbackIn &in);

    //! 上传数据
    bool postEventInfo2(FeedbackIn2 &in);

    //! 分析数据
    int genResult(NetBuffer *data);

    //! 调试信息
    void profile();

private:
    ByteString fname;         //姓名		String		是
    SFString fphone;        //联系电话	String		是
    SFString type;          //反馈方式	Int         是	1语音2文字
    SFString feedbackType;	//反馈分类	String		是
    SFString file;          //语音文件   FileName    否	type=1时必传
    SFString content;       //反馈内容	String		否	type=2时必传
    ByteString uploadTime;    //上传时间	String		是	2021-12-1310:14:00
    SFString feedbackMode;

    NetUrl::ReadIFace *m_readHandler;
};
}

#endif // SSICLOUD_VS_FEEDBACK_H
